import axios from 'axios'
import store from '@/store'
import { Message } from 'element-ui'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/modules/login'
import { api } from '@/config'

console.log('api:', api)
// 创建axios实例
const service = axios.create({
  baseURL: api, // api的base_url 省略前缀的写法
  timeout: 55000 // 请求超时时间
})

// request拦截器
service.interceptors.request.use(config => {
  NProgress.start();
  if (!store.getters.token) {
    config.headers.Authorization = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  }
  console.log('config:', config)
  return config
}, error => {
  // Do something with request error
  console.log(error) // for debug
  Promise.reject(error)
})

// respone拦截器
service.interceptors.response.use(
  response => {
    NProgress.done();
    /**
    * code为非200是抛错 可结合自己业务进行修改
    */

    return response.data
  },
  error => {
    // 处理错误状态码
    console.log('err' + error)// for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 3 * 1000
    })
    return Promise.reject(error)
  }
)

export default service;

// handleError()
// function handleError(code) {
//   if (res.code !== 200) {
//     Message({
//       message: res.message,
//       type: 'error',
//       duration: 3 * 1000
//     })

//     // 401:未登录;
//     if (res.code === 401) {
//       MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确定登出', {
//         confirmButtonText: '重新登录',
//         cancelButtonText: '取消',
//         type: 'warning'
//       }).then(() => {
//         store.dispatch('FedLogOut').then(() => {
//           location.reload()// 为了重新实例化vue-router对象 避免bug
//         })
//       })
//     }
//     // return Promise.reject('error')
//   } else {

//   }
// }
